package io.xxx.xbutler.core.check;

import io.xxx.xbutler.domain.task.PushContext;

public interface Checker {

    /**
     * 检查PushContext是否合法，如果是全局错误，则返回一个CheckError，返回null不代表任务明细没有错误，
     * 只能说明某种检查是非全局性的检查，检查之后能否推送消息需要根据明细的errorCode进行判断，如果errorCode非空，
     * 表明这条明细有错误，不进行推送。
     *
     * @return null - 可能存在非全局错误，nonNull - 全局错误
     */
    CheckError check(PushContext context);

    boolean supports(PushContext context);
}
